﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;

namespace BitPortal.Business
{
    public static partial class PermissionBLL
    {


        public static void CheckRoleThrowException(string[] roles, bool requireAll = true,
            string msg = "Bạn không có quyền thực hiện tác vụ này!", bool useExceptionHandler = false)
        {
            if (requireAll)
            {
                foreach (string role in roles)
                {
                    CheckRoleThrowException(role, msg, useExceptionHandler);
                }
            }
            else
            {
                foreach (string role in roles)
                {
                    if (Roles.IsUserInRole(role)) return;
                }
                if (!useExceptionHandler)
                {
                    throw new Exception(msg);
                }
                else
                {
                    ExceptionHander.ThrowNotPermissionException();
                }
            }
        }

        public static void CheckRoleThrowException(string role, string msg = "Bạn không có quyền thực hiện tác vụ này!", bool useExceptionHandler = false)
        {
            if (!Roles.IsUserInRole(role))
            {
                if (!useExceptionHandler)
                {
                    throw new Exception(msg);
                }
                else
                {
                    ExceptionHander.ThrowNotPermissionException();
                }
            }
        }

        /// <summary>
        /// Kiem tra trang thai dang nhap,neu chua dang nhap thi chuyen toi trang login.
        /// </summary>
        public static void CheckLogin()
        {
            if (Membership.GetUser() == null)
            {
                HttpContext.Current.Response.Redirect("/Login.aspx?ReturnUrl=" + HttpContext.Current.Request.Url.PathAndQuery);
                HttpContext.Current.Response.End();
            }
        }
    }
}